System and method for arranging and playing a media presentation

ABSTRACT

The system enables a user to select and order media objects, such as sound files, image files, animations, and text into a media presentation. The media presentation is then associated with a trigger or other interrupt event. Upon an occurrence of the event, the system plays the media presentation on system output devices. In one example of the system, the selected media files, ordering information, and other properties are assembled into a media package. The media package may be published to a remote device so that a remote device may play the media presentation.

This application is related to U.S. patent application Ser. No.10/713,319, filed Nov. 14, 2003, and entitled “A System and Method forSequencing Media Objects”, which is incorporated herein by reference.

BACKGROUND

The field of the present invention is the presentation of media objects,for example, images or sounds. More particularly, the present inventionrelates to presenting media objects using an embedded processor system.

Many electronic devices use embedded processors. For example mobileelectronic devices often include embedded processors, microprocessors,or other controllers for controlling the device and providing aninterface to a user. More specifically, devices such as mobile wirelessphones, personal data assistants, MP3 players, and cameras generallyinclude embedded processors for monitoring, operating, and using thesedevices. Also, many consumer devices such as DVD players, CD players,stereo equipment, appliances, and motor vehicles include embeddedoperational controllers. These embedded controllers typically havelimited processing capability, and their processing capability ispreferably prioritized towards operation and monitoring functions,instead of using excessive processing power and memory to provide acomplex user interface. These devices also may have limited memory, suchas RAM memory, to keep costs down. In this way, the embedded processor'slimited memory, limited processor power, and simple structure cooperateto make cost sensitive and reliable devices.

These embedded systems often require or benefit from a visual display toa user, and often have other presentation devices such as a speaker, LEDpanels, or other media presentation components. For example, a mobilephone may have a graphical user interface displayed on an LCD screen forproviding a man-machine interface. The mobile phone may also enhance theuser experience by permitting the user to view an image, listen to afavorite song, or watch a movie trailer. The processor in the mobilephone is responsible for call processing, diagnostics, and supportapplications, so only limited processor power is generally available tooperate and manage the user interface or other graphical processes.Consumers, however, are demanding more interesting and more usefulinteraction with their electronic devices. In one example, consumersdesire a media aspect to the user interface by using sound, images,graphics, animations, or movies.

A typical device that uses an embedded system has limited RAM memory anda relatively simple processor structure. Accordingly, the device mayprovide only a limited media experience, for example, by allowing forthe display of only short animation segments or simple screensavers.Longer media presentations may consume too much processing power andmemory, and divert a substantial amount of the device's limitedresources into managing and playing a media presentation. In such acase, the device may fail to respond to a time-critical event, such asreceiving a wireless telephone call, because the device has dedicatedtoo much memory or processor time to the media presentation. But, anincrease in power or memory would increase the complexity and cost forthe embedded system and the device. Despite these limitations, consumersare demanding more interesting, active, and helpful user interfaces, andlonger media presentations could assist in making more useful andaesthetically pleasing displays.

Also, consumers desire electronic devices that can be customized andtailored to a user's particular preferences. For example, mobile phonesoften provide for changeable faceplates that allow a user to select ahousing color, aesthetic style, or message. In another example, manyportable devices allow the user to specify the “wake-up” screen to thedevice. In this way, the device “greets” the user with a messageparticular to that user. A typical customized screen may show the userthe local weather, or may present the latest box scores for the user'sfavorite team. Accordingly, there is a need for providing a customizablesystem and method that enables the sequencing and presentation of mediaobjects on embedded systems, particularly where the embedded system haslimited memory and processor capability.

SUMMARY

Briefly, the present invention provides a method and system forarranging and playing media objects in a media presentation. The systemenables a user to select and order media objects, such as sound files,image files, animations, and text into a media presentation. The mediapresentation is then associated with a trigger or other interrupt event.Upon an occurrence of the event, the system plays the media presentationon the system's output devices. In one example of the system, theselected media files, ordering information, and other properties areassembled into a media package. The media package may be published to aremote device so that a remote device may play the media presentation.

In a preferred example, the method is operated on a mobile wirelessphone. A user selects a sequence of images from an image file stored onthe phone. The user places the images into a desired order, and in somecases may be enabled to specify, for example, durations, timings, andtransitions for the selected images. Depending on specificconfigurations, the user may also specify and sequence other mediaobjects, such as sound files, text, or animations. The selected andordered images (and other media objects if selected) are stored as ascreensaver file. The screensaver file is associated with a screensaverevent on the phone, which typically is set to trigger after apredetermined duration of inactivity. The phone then monitors for thescreensaver event, and upon its occurrence, plays the customizedscreensaver.

Advantageously, the described system and method enables a user todynamically arrange customized media presentations on relatively simpledevices, such as wireless phones. In this way, the user is able tocustomize the device according to the user's personal tastes. Forexample, the user may configure custom multimedia presentations aspersonalized screensavers or ring notifications. These custompresentations provide a level of sophistication and professionalism notavailable on typical known portable devices, and may even combinedifferent types of media into a dramatic multimedia presentation. Thesystem and method operates on relatively simple processor structures andin devices with limited memory resources. In this way, the presentsystem and method may be implemented without substantial added expenseor complexity.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a wireless device arranging and playing amedia presentation in accordance with the present invention;

FIG. 2 is a flowchart of a method of arranging and playing a mediapresentation in accordance with the present invention;

FIG. 3 is a flowchart of method for generating and playing presentationsegment files in accordance with the present invention;

FIG. 4 is a block diagram of example file formats for a media package inaccordance with the present invention;

FIG. 5 is a flowchart of a method for arranging and playing a mediapresentation in accordance with the present invention;

FIG. 6 is a flowchart of a method for arranging and playing a mediapresentation in accordance with the present invention; and

FIG. 7 is a block diagram of a device arranging and playing a mediapresentation in accordance with the present invention.

DETAILED DESCRIPTION

Referring now to FIG. 1, a system and method for arranging and playing amedia presentation is illustrated. System 10 illustrates an exampleconstruction using a wireless communication device 12. Although FIG. 1illustrates a wireless device 12, it will be understood that the methodof system 10 may be advantageously used on many other types of devices.For example, the method of system 10 may be used in devices havingembedded controllers, such as personal data assistants, MP3 players,DVD/CD players, appliances, cars, cameras, or other consumer devices.

Generally, system 10 enables a consumer to use the simple wirelessdevice 12 to dynamically arrange or configure a custom mediapresentation. The custom media presentation is associated with someevent trigger on the device 12, and when that event occurs, the deviceplays the media presentation. For example, a user may define a customscreensaver that includes personal image files, favorite sounds, andcustom text. The media presentation may be associated with a screensavertrigger on the wireless device 12. When the wireless device indicatesthe screensaver should be played, the custom media presentation isplayed as the screensaver. In this way users may personalize andcustomize their wireless device to make the device easier to use, moreinteresting, and more aesthetically pleasing.

Wireless device 12 includes input devices 17 such as a keypad 46 and amicrophone 48. The keypad may include a ten-key input for numbers,toggle switches, rotary knobs, and other buttons and input components.The wireless device 12 may also include other input devices such as barcode readers and portable keyboards. The wireless device also has outputdevices 16. Typical output devices for wireless device include agraphical display 41, which may be in the form of a black and white orcolor LCD display. The wireless device 12 also typically has one or morespeakers 42. The speakers are constructed to enable a user to hear atelephone call, hear a ring tone, and possibly hear communications tofacilitate use as a speaker phone. It will be appreciated that onespeaker may be arranged for all these functions, or the wireless devicemay have multiple speakers. The wireless device 12 also may have otherlights 43 useful for indicating status of the wireless device and forillumination purposes. The wireless device may also have a vibrator 44for shaking the wireless device to notify a user of an incoming callwhen a ring tone is not desired.

The wireless device also has an RF section 19 that would include anantenna 51, a transceiver 53, and may include a GPS receiver 55 fordetermining location position. It will be appreciated that the generalconstruction of a wireless device, including its RF section, inputdevices, output devices, is well known and therefore will not bedescribed in detail. The RF section 19, input devices 17, and outputdevices 16, all couple to a processor 14. It will be understood that theprocessor 14 may be in the form of a single processor, or may beconstructed as multiple interconnected processors. It will also beunderstood that the processor may be in the form of a microprocessor,computer chip, gate array, PLD, or other logic device. Processor 14, maybe in one example, an embedded processor having a relatively simplestructure and limited RAM memory. The processor 14 implements severalfunctions for the wireless device, and those functions may be performedin hardware, in firmware, in application software, or a combination ofthe above. Wireless device 12 also includes other components which arenot shown, such as a battery power source and a housing.

The processor 14 functions to provide a user interface for the user ofthe wireless device. This user interface generally accepts inputs fromthe keypad 46 and other input devices 17, and displays instructions,status, and other information to the user on the output devices 16 suchas display 41. As part of the user interface, the processor 14implements a configuration utility 27. Configuration utility 27 enablesa user to select and order multimedia files into a presentation. Mediafiles 21 may be accessed by the configuration utility 27 and a list ofavailable files is displayed to the user. Media files 21 may be storedlocally on the wireless device, on an expansion memory card on thewireless device, or may be on a server which can be accessed wirelessly.The media files 21 may include sound files 58, image files 59, animationfiles 60, synthesized speech files 61, and Midi files 62.

The media files may also include links 64 which could provide links toremote servers for identifying additional remote media files 28. Mediafiles 21 may also include transitions 63. A transition is used toprovide a smooth change when initiating a media file, ending a mediafile, or changing media files. For example, a transition may allow animage to slowly fade onto the screen or fade gently from the user'sview. Such transitions give a more finished and professional appearanceto media presentations on a device.

Using the configuration utility 27, the user selects a series of mediafiles for a media presentation. For example, the user may select aseries of personal images and a favorite music clip. The user would thenuse the configuration utility 27 to order the images into a propersequence, and set the start event and duration for the music clip. Theconfiguration utility 27 then generates a media package 23. The mediapackage 23 has information sufficient to enable the wireless device toplay the media presentation, including media file information, orderinginformation, and timing information.

After the media package 23 has been generated, an association utility 26may be used to associate the media package with a trigger event on thewireless device. In one example, the association utility is also part ofthe user interface for the wireless device 12, thereby enabling a userto associate a specific media package with a particular trigger event.For example, the user may associate a particular media package with ascreensaver event, and may associate another media package with a “callreceived” trigger event. It will also be understood that theconfiguration utility 27 may be automated by the wireless device, suchthat the wireless device automatically detects and associates a mediapackage with a particular trigger event. After the association utility26 makes an association, the association between an event and a mediafile is stored in an association list 25. It will be appreciated thatother methods may be used for storing and tracking associations.

The association utility 26 may be able to associate media packages withseveral different types of trigger events. For example, a wirelessdevice may have a call processor event 34 that provides triggers forwhen a call is received, a call is disconnected, or a call is dropped.Further, the call processor may provide indications or triggersregarding whether a voice call, paging call, SMS message, or textmessage is received. A timer 35 may also generate a trigger. Forexample, after a period of no user activity, a wireless device oftenprovides a screensaver trigger to cause a screensaver to be shown on theLCD screen. The screensaver not only provides an aesthetic appeal to thewireless device, it also protects the LCD from suffering a burnoutcondition. Pressing a key 36 may also generate a trigger event that maybe used to load and play a media package. Caller ID function 37 is alsoavailable on many wireless devices for providing an indication of thespecific caller initiating a voice call.

In another example, a device monitor 38 may be used to set a devicetrigger. For example, a device trigger may be set for a low batterycondition, no carrier received condition, or other status of thewireless device. Finally, many wireless devices have an ability toobtain position location information 39. This position locationinformation may be useful for setting a trigger event. For example, auser may desire that a particular song be played when the user is aboutto arrive at home. In another example, the location trigger could be setplay another song whenever the wireless device receives an indicationthat a coffee shop is close by. It will be appreciated that many otherevent triggers may be generated consistent with this disclosure.

After the association utility 26 has been used to associate a particularevent or set of trigger events with a media package, the event processor33 is used to monitor for an occurrence of that event or events. Theevent processor, upon detecting the associated occurrence, provides aninterrupt into the media engine 29. The media engine 29 may recall theassociation list 25, which includes an identification of which mediapackage should be recalled upon the happening of a particular triggerevent. For example, if the timer event 35 provides an interrupt to themedia engine 29, the media engine 29 can extract information from theassociation list 25 regarding which media file is associated to thetimer event. The association list 25 may indicate that a particularmedia package is to be played as a screensaver upon the timer eventtrigger.

The media engine 29 then extracts the media package from the mediapackage file 23, and presents the media presentation on the display 41,speaker 42, or other output devices used by the media package. In theillustrated example, the media package 23 includes the media objectdata, so the media engine is able to play the media presentation withoutaccessing the media file 21. In an alternative implementation, the mediapackage provides a reference link to the media objects, and the mediaengine accesses the needed media objects from media file 21. It will beunderstood that the media package and media objects may be storedlocally on the phone in a format that can be immediately used by themedia engine 29, or a media package processor 31 may be used to furtherprocess the media package and media objects for use by the media engine29. For example, one or more of the individual media objects may be toolarge to be efficiently used by the media engine. Accordingly, the mediapackage processor 31 may be used to divide the large media object into aseries of sequential segments or subsets that can be easily accommodatedby the media engine 29.

Referring now to FIG. 2, a flowchart of a method of arranging andplaying a media presentation is illustrated. Method 80 begins byallowing a user to set configuration 81 of a media presentation. Insetting a configuration, the user accesses files 87 either on a localdevice or on a remote server. The local files may be stored in localmemory, or may be stored on a removable memory card, for example. Themedia objects may be image files, animations, sound files, Midi musicfiles, text files, artificial speech files, or other types of mediaobjects. The user then selects 88 a set of sound, image, animation, orother media objects to be used as part of the media presentation. Theuser may then specify an order 89 for the selected media objects. In oneexample, each of the media objects may be played sequentially. Inanother example, certain of the media objects may be played concurrentlywith another, such as when the user desires to play a music clip at thesame time an image is being displayed. The user then may be able to setcertain specific properties 90 for each of the media files. It will beappreciated that each type of media object may have different propertiesthat may be set. For example, a sound file may have a duration propertyand a volume property, while an image file may have a duration propertyand a color depth property. The user may also be able to add transitions91 to the media objects. Transitions may be added at the start of amedia object, at the end of a media object, or between media objects.Typical transitions may include zooms, fades, dissolves, louvers, andspins. It will be understood that many other types of transitions may beused.

After the user has set the configuration, a media package is generated82. The media package may be arranged in optional forms. For example,the media package may be encapsulated 94. An encapsulated media packageincludes data information for each of the media objects selected, plusthe necessary ordering, sequencing, and timing information. In this way,an encapsulated media package is self-contained with the informationnecessary for the media engine to present the media presentation. In oneexample, encapsulated media package may be published 86. Theencapsulated media package may be published to a server where otherusers may access and download the media package, or it may betransmitted directly to another user. In this way, the remote user maybe enabled to associate the encapsulated media package with a particulartrigger event, and have the media presentation played on the remoteuser's device.

The media package may also be referenced 95. A referenced media packagedoes not contain all the media data information, but instead providesdirectory or file links to where the media files may be located. Forexample, a referenced media package may include a directory name, a filename, or a server name where a specific image object could be located.In this way, media files may be reused by many media packages, therebysaving memory space. Media packages may also automatically link mediaobjects, or if individual media objects are too large, then link smallersegments together to form the whole media objects. Using a linked mediapackage 92, each media object or segment is associated with sufficientinformation to cause the media engine to load the next sequential mediaobject. In this way, each of the media objects or segments is linked orchained together. In some configurations, a linked media packageprovides for a simpler processor structure and memory management.

Once the media package has been generated, the media package may beassociated with a particular trigger event 83. For example, the triggerevent may be an incoming call 96, a particular caller ID 97, aparticular time or duration 98, or a status of the device 99. It will beappreciated that many other trigger events may be used. The device thenmonitors for the event 84. When the event occurs, the device activatesthe media engine to play 85 and present the media package. In this way,the presentation is played for the user responsive to a particulartrigger event.

Referring now to FIG. 3 a flowchart for method for generating andplaying presentation segment files is shown. Method 120 is particularlyuseful for embedded systems having a simple structure with limited RAM.Such embedded systems are most efficiently utilized when an entire mediasegment can be loaded into local RAM prior to presenting the mediaobject. Because embedded processors often have limited RAM, the size andnumber of sequential media objects may be limited. Therefore, method 120enables a large media presentation to be segmented into individualsegments, with each segment sized to efficiently be loaded intoavailable RAM. Advantageously, long media presentations may then bepresented responsive to trigger events. In this way, devices become morefriendly, more interesting, and more fun. Further description ofgenerating and sequencing segments is provided in related U.S. patentapplication Ser. No. 10/713,319, which has been incorporated herein byreference.

The Method 120 starts by having a user select and order media objects todefine a media presentation as shown in block 122. In this example, theuser desires to start playing the sound “mp1”, and then start playingthe animation “an1”. After the animation is completed, the user thendesires to display the image “jp1”. The selection and ordering is doneas part of a device's user interface, with the information beingforwarded into a batch process 137. It will be understood that manyalternatives exist for providing an interface to enable a user to selectand order media objects. The batch process 137 has access to media files124, where each of the selected media objects can be found. Each of themedia objects, such as the sound 126 “mp1” is in the media file 124 andincludes an indication of file format, the file name, and sizeinformation. For example, sound 126 is in an MP3 format, the sound datafile can be found in a file named “mp1”, and the file is 150 units insize. It will be appreciated that the size units may be, for example, inbytes or kilobytes, or may be a relative size indication. In anotherexample, the animation file 128 is shown to include eight sequentialimage files, each in a bit map format, and between 200 and 400 units insize. Finally, the image 129 is in a JPEG format, and is 600 units issize.

The batch process also has access to configuration information 131,which may include a maximum size for individual presentation segments.The size may be predefined to allow each animation segment to be loadedinto memory, or may be determined dynamically dependent on specificdevice status. Since the batch process 137 knows the number and size ofall of the files in the media presentation, and also knows the maximumsize from the configuration file 131, the batch process 137 can segmentthe presentation into a set of sequential segments 140. For example, avery large media object may be divided into smaller sequential subsets,while a sequence of small media objects may be combined into a singlesegment. In this way, segments are provided that are sized to beparticularly efficient for loading into available RAM memory. Each ofthe segments may also include one or more action commands that providesequencing, timing, or other presentation information.

In FIG. 3, the max size may be set at 1000. The batch process thereforemakes a first presentation segment 141 that includes only the soundfile. The sound file is separately segmented since the sound file isgoing to be played concurrently with showing several image frames. Thesound segment 141 includes a file identifier 151, an action commandshowing that the sound file should be played for 7 seconds (7000 mS)152, and another action command 153 showing that segment “A” should beimmediately loaded and played. Sound segment 141 also shows that thefile “mp1” should be loaded. After “mp1” has played, the final actioninstruction 154 “END”, instructs that no additional files should beloaded.

Since the images in the animation file 128 aggregate to a size muchlarger than the 1000 maximum size, the batch processor 137 segments theanimation into three sequential segments 142, 143, and 144. The firstsegment 142 includes the first three image bitmaps. Since the firstthree images will each be in memory at the same time that the sound fileis included, the fourth bit map cannot be loaded without exceeding the1000 size limit. In this way, segment 142 is limited to the first threeimage files. In a similar manner, the second image segment 143 containsonly bitmaps 4 and 5. And finally, the third segment 144 includes thefinal three bitmap images.

Each of the three animation segments includes a file identifier and atleast one action instruction. For example, segment 142 is identified as“A”, and has an action identifier of “A2”. In this way, the segment 142includes an action instruction for identifying segment “A2” as the nextsequential segment. In this way, when segment “A” has played, the mediaengine is instructed to load and play the segment “A2”. In a similarmanner, segment 143 includes an action instruction “A3” for providing acallback to “A3” as the next animation segment, and segment 144 includesa callback instruction of “A4” for calling the “A4” segment 145 whensegment “A3” has played. The “A4” segment also includes a first actioninstruction to show that the image “jp1” should be displayed for 5seconds, and a final action instruction “END” showing that no moresegments are included in the media presentation.

Together, the media segments 140 are combined into a media package 156.In one example, the media package includes the media object data, andtherefore becomes an encapsulated media package 175. Such anencapsulated media package 175 could therefore be published 177 to aserver or transmitted directly to another user. The other user wouldthereby be able to play the encapsulated media presentation withouthaving to acquire the media objects from other locations. Alternatively,the media package may include references to the file names, and themedia engine 160 can retrieve data for the media objects from a mediafile or files 158.

Media packages may be associated with specific event triggers for adevice. In one example, the association is made dynamically by a user tofacilitate further customization options, and in another example, thedevice may define the association. An association list 133 is used totrack the associations between media packages and trigger events. Thedevice monitors for trigger events 135, and when a trigger event occurs,uses the association list 133 to determine which media package to accessand play. The media engine thereby retrieves the correct media packagefor the associated trigger event and accesses media objects from themedia file 158. The media engine proceeds to play the media presentationon an output device 162 such as the display and the speaker. When themedia engine plays the presentation, the presentation will be shown tothe user as a multimedia presentation 166. More particularly, the userwill first hear a sound 172 which will continue for 7 seconds. The userthen sees animation segments 168, 169, and 170. At the completion of theeight frames of animation, a static image 171 will be shown for 5seconds. Shortly after the image is complete, the sound 172 will end.

Method 120 enables a user to dynamically configure and arrange mediaobjects into a custom media presentation, and the batch processordivides the media presentation into segments sized to be convenientlyloaded into available RAM memory. The media presentation is thenassociated with a particular trigger event, and upon an occurrence ofthat event, the media presentation is played. The media presentation mayalso be provided into a package that can be published for use by aremote user.

Referring now to FIG. 4, example file formats for media packages areillustrated. A media package generally consists of informationsufficient so that a media engine may play several media objects, andincludes ordering and sequencing information so the media engine knowshow to order, sequence, and time the media objects. In file formats 201and 203, the file formats use media segments like the media segmentsgenerated with reference to FIG. 3.

In file format 201, a media package 209 is illustrated that referencespresentation segments stored in a directory. Package 209 includesdirectory information so that the media engine knows what directory,server, or other location to find the individual presentation segments.The package 209 shows that the first sound file “S” plays for 7 secondsand the “A” segment immediately loads and plays. After “S” completes, nomore files are loaded responsive to “S”. After “S” has been loaded, “A”is loaded and each of its frames displayed for 200 milliseconds, and atthe completion of the last image, segment “A2” is loaded. In a similarmanner all the images associated with “A2” are played for 200milliseconds and at the completion of the last image, segment “A3” isloaded. Also, “A3” plays each of its images for 200 milliseconds and atthe completion of the last image, presentation segment “A4” is loaded.Segment “A4” plays for 5 seconds, and the media presentation ends.Segment files 211 are located in the directory identified in the package209 as well as the media file data 213.

File format 203 shows an example of an encapsulated segmented mediapackage. In file format 203, the media package includes a sound segment214 that includes sequencing and timing information along with sounddata. Three animation segments 215, 216, and 217 are also provided, witheach having sequencing information and respective image data. The mediapackage also includes an image segment 218 having timing information,sequencing information and image data. In this way encapsulatedsegmented file format 203 may be transmitted to a server for download toother users, or may be transferred directly to another remote device forpresentation. Since the encapsulated file includes all data andinformation necessary for the presentation, any compatible media enginemay play the media presentation. For example, a user may develop aparticularly interesting screensaver, and may encapsulate thatscreensaver in a media package. The user may transmit the screensaverpackage to a central server, where another user could download thatscreensaver package and have that screensaver operate on the remoteuser's device.

In another example of the media package format, a referenced format 205is shown. The referenced format 205 includes a media package 220 thatincludes the name of the screensaver and a directory where the datafiles can be found. In this way, the media package simply identifies theorder of the media objects, and alternatively may include additionalsequencing and timing information. The media package 220 identifies thedirectory where all the media files 222 are located. In another exampleof the file format 207, the media package 225 includes an identificationof the order of media objects, and also includes all of the media datain a single file. Again, the encapsulated media package 225 may bepackaged for transmission and publication. It will be appreciated thatmany alternatives exist for formatting and arranging the media package.

Referring now to FIG. 5 a flowchart of a method for arranging andplaying a media presentation is illustrated. More particularly, method250 illustrates a method for defining a long media presentation,dividing the long media presentation into a series of presentationsegments, and then sequentially playing each of the presentationsegments responsive to an event trigger. Method 250 is generally dividedinto a user configuration section 251, a background monitoring section253, a segment generation section 255, and a segment presentationsection 257.

In the configuration segment 251 a user defines the presentation 261 byordering and selecting media objects. The user may also be able to addand change particular characteristics and properties for each of themedia objects. After the media presentation has been generally defined,the media presentation is associated with a particular trigger event263, such as with an elapsed timer or an interrupt action. The devicethen enters a monitoring phase 253 where it monitors for the occurrenceof the target event 265.

In section 255, the long media presentation is divided into segmentsthat can be more easily loaded into limited RAM of, for example, anembedded processor system. The dividing and segmentation process 255 mayoccur responsive to the occurrence of the trigger event, or may occur ata different time. For example, the media presentation may be segmentedduring the time when the processor has additional processing capability,and the prepared segments would therefore be ready for immediate usewhen the interrupt occurs. In another example, the segmentation processmay occur after the event trigger has been received.

In segmenting the long media presentation, a batch processor is used todetermine presentation segments that are smaller than a maximum limit266. The maximum limit is typically set at a size smaller than theamount of available RAM. In this way, an entire media presentationsegment can be loaded into RAM at one time. A segment identification 268is added to each presentation segment. For example, the segmentidentification may be the file name for holding that presentationsegment. Segment sequence information 269 is also added to thepresentation segment. For example, the segment sequence information maybe in the form of an action command that provides a callback to the nextsegment in sequence. In this way, each segment links to the next segmentin sequence so that the presentation segments are chained together. Forthe last segment, an action command of “END” may be added as segmentsequence information so that the media engine knows that no additionalmedia segments should be loaded. The segmenting process is continued 271until all segments have been generated.

When the trigger event is detected, the media presentation is thenpresented or played. The trigger event has been associated with aparticular media presentation, and that identification is used to recallthe first segment identification in block 273. The first segment isloaded into memory 275 and presented to the user as shown in block 276.For example, if the media segment is a sound file, the sound would playthrough the speaker, and if the media object is an image, then the imagewould be displayed on the display screen. The media engine then checksthe sequence information 277 in the segment, and if an action command isa call back 279, then the media engine has the file name of the segmentto load into memory next. Depending on other action commands andsequencing information contained in the segment, the media engine mayimmediately load the file and begin playing it concurrently, or may waituntil the current media object has finished playing before loading andplaying the next object. If the action command is the END command, thenthe media engine knows that no more media segments are to be played.Method 250 thereby enables the playing of a long media presentation onan embedded system having simple structure and limited RAM.Advantageously, each media segment includes sequencing information sothat all the segments are easily linked or chained together. In someconstructions, this enables a particularly efficient and simpleprocessor and memory structure.

Referring now to FIG. 6 another flow chart for arranging and playing amedia presentation is illustrated. Method 300 allows a user to define apresentation 302 by selecting and ordering media objects. Once theobjects have been selected and ordered, a media package can be generatedas shown in block 304. The media package then may be used locally 305 ormay be published 306 to be used remotely 307. If used locally 305, thelocal user associates the media presentation with a trigger event asshown in block 308. The local device then monitors for that event 310and upon occurrence of that event 312 the media presentation is played.In this way, the media presentation generated by the local user may beused and presented by the local device. Alternatively, the media packagemay be published and used by a remote user and device. The remote user307 would receive the media package, either by downloading from aservice or by receiving the media package as, for example an attachmentto an SMS message. Once the media package has been received at theremote device, the remote user associates the media package with atrigger event 314, and the remote device monitors for that trigger eventas shown in block 315. Upon occurrence of that trigger event 317 theremote device plays and presents the media presentation. In this way,the media presentation generated on a local device may be published to aremote device for use and presentation.

Referring now to FIG. 7 a block diagram of another device for arrangingand playing a media presentation is illustrated. System 325 includes adevice 327, which may be for example, a portable battery powered devicefor use by a consumer. The device 327 includes input devices 333allowing the user to provide inputs to the device. Typical input devicesmay be for example, keyboards, keypads, microphones, and graffiti stylusdevices. The device 327 also includes output devices 331. For exampleoutput devices may include color or black and white screens, speakers,vibrators, lights, and other indicators. The device 327 has a processor329 which may be in the form of a single or multi processorconfiguration. The processor operates a user interface using the inputdevices 333 and the output devices 331. In one example, the userinterface may be a graphical user interface allowing the user to makechoices graphically. In another example, the user interface may allowthe user to interact with the device by selecting numbers or letters ona keypad, or by toggling various switches. The device 327 also includesmedia files 335. The media files 335 may be included on local memory, ormay be included on removable memory cards. Also, the device 327 may havecommunication links via wireless connection or Internet connection foraccessing servers to find and access additional media files.

The user interface includes a configuration utility 340 enabling theuser to select and order a set of media files. For example, the user mayselect a series of images to be displayed concurrently with the sound.The configuration utility may also enable setting of certain propertiesand characteristics for each of the individual media objects, or for themedia presentation as a whole. In an alternative arrangement, theconfiguration utility may be a process operating on a different device.For example, the configuration utility may be operated on a computersystem having access to a large number of media objects. Theconfiguration is used to select and order these objects, and generates amedia package that is arranged for transmission to the device 327. Ifthe computer system has particular information regarding the device 327,the computer may also provide an association list to the device 327 thatidentifies which event trigger should be associated with the mediapackage.

An association 343 can be made on the local device between the mediapresentation and a particular trigger event. An event processor 341monitors for the particular event, and when that event occurs, notifiesthe media engine 338 that the event has occurred and provides anidentification for the media presentation to be played. The media engine338 recalls the media presentation, and if necessary, recalls theindividual media object files, and presents the media presentation usingone or more of the output devices 331. Using system 325, a user is ableto dynamically construct and configure a media presentation, andassociate that media presentation with a particular trigger event. Uponoccurrence of the trigger event, the media presentation may be displayedon the local device. If the device 327 includes communication abilities,the media presentation may be published wirelessly or through networkconnection to a remote device. Provided the remote device has a properlyconfigured media engine, the media presentation may be played remotely.

While particular preferred and alternative embodiments of the presentintention have been disclosed, it will be appreciated that many variousmodifications and extensions of the above described technology may beimplemented using the teaching of this invention. All such modificationsand extensions are intended to be included within the true spirit andscope of the appended claims.

1. A method for arranging and playing a media package on a wirelesscommunication device, comprising: providing a plurality of media objectsfor selection by a user, the plurality of media objects comprising atleast one of image files, sound files, animation files, speech files,midi files, transitions, and links; receiving configuration instructionsfrom a user, the configuration instructions comprising selecting andordering a subset of media objects of the plurality of media objects,and specifying specific properties for at least one media object of theselected subset of media objects; receiving a user input indicating auser-selected trigger event; associating the user-selected trigger eventwith the selected subset of media objects; forming a series ofsequential segments, comprising: a) dividing a large media object intosmaller sequential segments or combining small media objects into asingle segment, wherein the dividing and combining is carried out suchthat each segment is sized to effectively be loaded entirely intoavailable random access memory RAM, based on a segment maximum sizederived from a specific status of the wireless communication device, b)wherein, when forming the series of sequential segments, a segmentidentification and at least one action instruction is included into eachsequential segment, wherein each action instruction indicates whichsequential segment has to be loaded and played next when playing theseries of sequential segments, c) repeating steps a) and b) for eachmedia object until the series of sequential segments is formed, groupingthe plurality of sequential segments to form a media package responsiveto the configuration instructions from a user; monitoring for theuser-selected trigger event; detecting the user-selected trigger event;responsive to detecting the user-selected trigger event, playing themedia presentation on at least one interface of a plurality of userinterfaces of the wireless communication device, wherein the mediapresentation comprises the media package.
 2. The method according toclaim 1, further including the steps of: publishing the media package toa remote device; associating, on the remote device, the media packagewith a trigger event; monitoring for the trigger event on the remotedevice; detecting the trigger event on the remote device; and playingthe media package on the remote device, responsive to the trigger event.3. The method according to claim 2, wherein the media package ispublished to the remote device through a network connection.
 4. Themethod according to claim 2 wherein the media package is published tothe remote device through a wireless connection.
 5. The method accordingto claim 1, wherein the media presentation is played by loading andplaying each of the series of sequential segments in sequential order.6. The method according to claim 1 where at least one of the pluralityof media objects is a sound file and at least another one of theplurality of media objects is an image file.
 7. The method according toclaim 1, wherein the media package is a screensaver for a display deviceof the wireless communication device, and the media package is playedresponsive to a timed trigger event associated with a screensaverfunction.
 8. The method according to claim 1, wherein the user-selectedtrigger event is generated by a position location receiver.
 9. Themethod according to claim 1, wherein the user-selected trigger event isgenerated by a timer.
 10. The method according to claim 1, wherein theuser-selected trigger event is generated by a call processor.
 11. Themethod according to claim 1, wherein the user-selected trigger event isgenerated according to a content of a caller identification information.12. The method according to claim 1, wherein the media package is areferenced media package which includes file location links to accessdata for the plurality of media objects.
 13. The method according toclaim 1, wherein the media package is a linked media package wherein theplurality of media objects comprises the series of sequential segmentswhich directs a media engine to load each next sequential segment.
 14. Awireless communication device for arranging and playing a media package,comprising: a memory storing a plurality of media objects for selectionby a user, the plurality of media objects comprising at least one ofimage files, sound files, animation files, speech files, midi files,transitions, and links; an output device; and a processor coupled to thememory and the output device, wherein the processor is configured to,receive configuration instructions from a user, the configurationinstructions comprising selecting and ordering a subset of media objectsof the plurality of media objects, and specifying specific propertiesfor at least one media object of the selected subset of media objects;receive a user input indicating a user-selected trigger event; associatethe user-selected trigger event with the selected subset of mediaobjects; form a series of sequential segments, wherein forming theseries of sequential segments comprises, a) dividing a large mediaobject into smaller sequential segments or combining small media objectsinto a single segment, wherein the dividing and combining is carried outsuch that each segment is sized to effectively be loaded entirely intoavailable random access memory (RAM), based on a segment maximum sizederived from a specific status of the wireless communication device, b)wherein, when forming the series of sequential segments, a segmentidentification and at least one action instruction is included into eachsequential segment, wherein each action instruction indicates whichsequential segment has to be loaded and played next when playing theseries of sequential segments, c) repeating steps a) and b) for eachmedia object until the series of sequential segments is formed, groupthe plurality of sequential segments to form a media package responsiveto the configuration instructions from a user; monitor for theuser-selected trigger event; detect the user-selected trigger event;responsive to detecting the user-selected trigger event, play the mediapresentation on the output device of the wireless communication device,wherein the media presentation comprises the media package.
 15. Thedevice according to claim 14, further including the steps of: publishingthe media package to a remote device; associating, on the remote device,the media package with a trigger event; monitoring for the trigger eventon the remote device; detecting the trigger event on the remote device;and playing the media package on the remote device, responsive to thetrigger event.
 16. The device according to claim 15, wherein the mediapackage is published to the remote device through a network connection.17. The device according to claim 15 wherein the media package ispublished to the remote device through a wireless connection.
 18. Thedevice according to claim 14, wherein the media presentation is playedby loading and playing each of the series of sequential segments insequential order.
 19. The device according to claim 14 where at leastone of the plurality of media objects is a sound file and at leastanother one of the plurality of media objects is an image file.
 20. Thedevice according to claim 14, wherein the media package is a screensaverfor a display device of the wireless communication device, and the mediapackage is played responsive to a timed trigger event associated with ascreensaver function.